package com.gylang.pdf.template;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.util.StrUtil;
import com.gylang.pdf.BaseTemplateTest;
import com.gylang.pdf.PdfTemplateRenderProcessor;
import com.gylang.pdf.SimpleFreemarkerTemplateProcessor;
import com.gylang.pdf.SimpleTemplateProcessorTest;
import freemarker.template.TemplateException;
import org.junit.Test;

import java.io.IOException;
import java.util.Map;

/**
 * @author gylang
 * data 2022/1/16
 */
public class 横向证书魔板 extends BaseTemplateTest {

    public static Map<Object, Object> data() {
        return MapBuilder.create()
                .put("certificate", "国家一级剑神工程师")
                .put("name", Convert.toSBC("  ") +  "李淳罡")
                .put("certNo", System.currentTimeMillis() + "")
                .put("content", "已于2020年5月15日至2020年5月15日，参加我单位举办的2021年度专业技术人员继续教育专业科目国家一级剑神技术课程培训，共 21 学时，考核合格（良好）。特此证明。")
                .put("org", "国家剑神协会")
                .put("qrcode", "img/qrcode.png")
                .put("sign", "img/sign.png")
                .put("publishDate", "2020年7月1日")
                .build();

    }

    @Test
    public void render() throws TemplateException, IOException {
        PdfTemplateRenderProcessor pdfTemplateRenderProcessor = getPdfTemplateProcessor();
        String file = SimpleTemplateProcessorTest.class.getResource("/template/certificate.html").getFile();
        pdfTemplateRenderProcessor.pushTemplate("certificate", FileUtil.readUtf8String(file));
        String goodStudent = pdfTemplateRenderProcessor.render("certificate", data());
        byte[] bytes = pdfTemplateRenderProcessor.renderByte(goodStudent);
        FileUtil.writeBytes(bytes, System.getProperty("user.dir") + "/render_out/certificate.pdf");

    }
}
